require(ggthemes)
require(ggplot2)
require(vegan)
require(dplyr)
require(data.table)
require(tidyr)

Reading in the new bird data

From Tyson’s csv.

new_bbs <- read.csv("fifty7_withRTENO.csv")
new_bbs$sum_route_abundance <- rowSums(new_bbs[grep("^Stop[0-9]+", names(new_bbs))])
head(new_bbs)
##   RouteDataID countrynum statenum Route RPID year AOU Stop1 Stop2 Stop3
## 1     6243648        124       62    16  101 2001  70     0     0     0
## 2     6243648        124       62    16  101 2001 100     0     0     0
## 3     6243648        124       62    16  101 2001 370     0     0     0
## 4     6243648        124       62    16  101 2001 380     0     0     0
## 5     6243648        124       62    16  101 2001 510     0     5     6
## 6     6243648        124       62    16  101 2001 710    46     0    19
##   Stop4 Stop5 Stop6 Stop7 Stop8 Stop9 Stop10 Stop11 Stop12 Stop13 Stop14
## 1     0     0     0     0     0     0      0      0      0      0      0
## 2     0     0     0     0     1     0      0      0      0      1      0
## 3     0     0     0     0     0     0      0      1      0      0      0
## 4     0     0     0     0     0     0      0      0      0      0      0
## 5     0     1     1    10     3     1      5      4      0      0      0
## 6    18     0     0     0     0     0      0      0      0      0      0
##   Stop15 Stop16 Stop17 Stop18 Stop19 Stop20 Stop21 Stop22 Stop23 Stop24
## 1      0      0      0      0      0      0      0      2      0      0
## 2      0      2      0      2      0      0      0      0      0      0
## 3      0      0      0      0      0      0      0      0      0      0
## 4      0      0      0      0      0      0      0      0      0      0
## 5      0      0      3      4      0      0      4      0      1      0
## 6      0      0      0      0      0      0      0      0      0      0
##   Stop25 Stop26 Stop27 Stop28 Stop29 Stop30 Stop31 Stop32 Stop33 Stop34
## 1      0      0      0      0      0      0      0      0      0      0
## 2      0      0      0      3      3      0      0      0      0      0
## 3      0      0      0      0      0      0      0      0      0      0
## 4      0      0      0      0      0      0      0      0      0      0
## 5      4      0      0      1      5      2      0      0      0      0
## 6      0      0      0      0      0      0      0      0      0      0
##   Stop35 Stop36 Stop37 Stop38 Stop39 Stop40 Stop41 Stop42 Stop43 Stop44
## 1      0      0      0      0      0      0      0      0      0      0
## 2      0      0      0      0      0      1      0      0      0      0
## 3      0      0      0      0      0      0      0      0      0      0
## 4      0      0      0      0      0      0      0      0      0      0
## 5      2      0      0      0      0      0      0      0      1      1
## 6      0      0      0      0      0      0      0      0      0      0
##   Stop45 Stop46 Stop47 Stop48 Stop49 Stop50 RTENO sum_route_abundance
## 1      0      0      0      0      0      1 62016                   3
## 2      0      0      0      0      0      0 62016                  13
## 3      0      0      0      0      0      0 62016                   1
## 4      1      0      0      0      0      0 62016                   1
## 5      0      0      0      0      0      1 62016                  65
## 6      0      0      0      0      0      0 62016                  83

Bird trait data

bird_traits <- read.csv("OH_BBS_1966-2013_traits.csv")
bird_traits <- bird_traits[ , c(1,2,3,4,5,6,7,8,9)]
head(bird_traits[2])
##         Scientific.name
## 1        Junco hyemalis
## 2      Colaptes auratus
## 3   Empidonax virescens
## 4     Empidonax alnorum
## 5 Botaurus lentiginosus
## 6         Anas rubripes
names(bird_traits) <- toupper(names(bird_traits))
names(bird_traits) <- gsub("[.]", "_", names(bird_traits))  # using the [] to get the period to be used literally. Or can use "fixed = TRUE"
names(bird_traits)
## [1] "X4_LETTER_CODE"  "SCIENTIFIC_NAME" "X6_LETTER_CODE"  "HABITAT"        
## [5] "DIET"            "NESTING"         "BEHAVIOR"        "CONSERVATION"   
## [9] "COMMON_NAME"
bird_traits$SCIENTIFIC_NAME <- toupper(bird_traits$SCIENTIFIC_NAME)
head(bird_traits)
##   X4_LETTER_CODE       SCIENTIFIC_NAME X6_LETTER_CODE       HABITAT
## 1           DEJU        JUNCO HYEMALIS         JUNHYE        forest
## 2           NOFL      COLAPTES AURATUS         COLAUT open_woodland
## 3           ACFL   EMPIDONAX VIRESCENS         EMPVIR        forest
## 4         ALFL       EMPIDONAX ALNORUM         EMPALN         scrub
## 5           AMBI BOTAURUS LENTIGINOSUS        BOTLEN          marsh
## 6          ABDU          ANAS RUBRIPES         ANARUB     lake_pond
##      DIET NESTING       BEHAVIOR CONSERVATION
## 1   seeds  ground ground_forager           LC
## 2 insects  cavity ground_forager           LC
## 3 insects    tree   fly_catching           LC
## 4 insects   shrub   fly_catching           LC
## 5    fish  ground       stalking           LC
## 6 insects  ground        dabbler           LC
##                                 COMMON_NAME
## 1     (Slate-colored Junco) Dark-eyed Junco
## 2 (Yellow-shafted Flicker) Northern Flicker
## 3                        Acadian Flycatcher
## 4                          Alder Flycatcher
## 5                          American Bittern
## 6                       American Black Duck

Bird code AOU data

AOU_codes <- read.csv("raw_data/AOU_codes.csv") ## a cleaned up (ie header removed, split into columns - no substantive changes to any species names or column headers) version of: ftp://ftpext.usgs.gov/pub/er/md/laurel/BBS/DataFiles/SpeciesList.txt

head(AOU_codes)
##   Seq   AOU          English_Common_Name           French_Common_Name
## 1   4 10010                Great Tinamou                Grand Tinamou
## 2   7 10030               Little Tinamou                 Tinamou soui
## 3  10 40080              Thicket Tinamou             Tinamou cannelle
## 4  13 10050       Slaty-breasted Tinamou           Tinamou de Boucard
## 5  16  1770 Black-bellied Whistling-Duck Dendrocygne \xe0 ventre noir
## 6  19 10200   West Indian Whistling-Duck     Dendrocygne des Antilles
##        Spanish_Common_Name        ORDER    Family        Genus     Species
## 1            Tinamus major Tinamiformes Tinamidae      Tinamus       major
## 2        Crypturellus soui Tinamiformes Tinamidae Crypturellus        soui
## 3 Crypturellus cinnamomeus Tinamiformes Tinamidae Crypturellus cinnamomeus
## 4    Crypturellus boucardi Tinamiformes Tinamidae Crypturellus    boucardi
## 5   Dendrocygna autumnalis Anseriformes  Anatidae  Dendrocygna  autumnalis
## 6      Dendrocygna arborea Anseriformes  Anatidae  Dendrocygna     arborea
AOU_codes$common_name <- toupper(AOU_codes$English_Common_Name)
names(AOU_codes)
##  [1] "Seq"                 "AOU"                 "English_Common_Name"
##  [4] "French_Common_Name"  "Spanish_Common_Name" "ORDER"              
##  [7] "Family"              "Genus"               "Species"            
## [10] "common_name"
AOU_codes <- AOU_codes[ , c(2, 10, 6:9)]
names(AOU_codes) <- toupper(names(AOU_codes))
head(AOU_codes)
##     AOU                  COMMON_NAME        ORDER    FAMILY        GENUS
## 1 10010                GREAT TINAMOU Tinamiformes Tinamidae      Tinamus
## 2 10030               LITTLE TINAMOU Tinamiformes Tinamidae Crypturellus
## 3 40080              THICKET TINAMOU Tinamiformes Tinamidae Crypturellus
## 4 10050       SLATY-BREASTED TINAMOU Tinamiformes Tinamidae Crypturellus
## 5  1770 BLACK-BELLIED WHISTLING-DUCK Anseriformes  Anatidae  Dendrocygna
## 6 10200   WEST INDIAN WHISTLING-DUCK Anseriformes  Anatidae  Dendrocygna
##       SPECIES
## 1       major
## 2        soui
## 3 cinnamomeus
## 4    boucardi
## 5  autumnalis
## 6     arborea
AOU_codes$SCIENTIFIC_NAME <- paste(AOU_codes$GENUS, AOU_codes$SPECIES, sep = " ")
AOU_codes$SCIENTIFIC_NAME <- toupper(AOU_codes$SCIENTIFIC_NAME)
#testing that all our traits at leat are in the new AOU codes:
bird_traits$SCIENTIFIC_NAME %in% AOU_codes$SCIENTIFIC_NAME # = not all true.
##   [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [12]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [23]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
##  [34]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [45]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
##  [56]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [67]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
##  [78]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [89]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [100]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [111]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [122]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [133]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [144]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [155]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [166] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [177] FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE
## [188]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [199]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
AOU_codes$SCIENTIFIC_NAME %in% bird_traits$SCIENTIFIC_NAME # many many falses
##    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [12] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [23]  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [34] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE
##   [45] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##   [56] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [67] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##   [78]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [89] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [100] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
##  [111] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [122] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [133]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [144] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [155] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [166] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [177] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [188] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [199] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [210] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE
##  [221]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
##  [232] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [243] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [254] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
##  [265]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [276] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [287] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [298] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [309] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [320] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [331]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [342] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [353] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [364] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [375] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [386] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [397] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [408] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [419] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [430] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [441] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [452] FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [463] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [474] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [485] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [496] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##  [507]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [518] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [529] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [540] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [551] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [562] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [573] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [584] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [595] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [606] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
##  [617] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [628] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [639] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [650] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [661] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [672] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [683] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [694] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [705] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [716] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [727] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [738] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [749] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [760] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [771] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [782] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [793] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [804] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [815] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [826] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [837] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
##  [848] FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE
##  [859] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [870] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##  [881] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [892] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [903] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [914] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [925] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
##  [936]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [947] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [958] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [969] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [980]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [991]  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [1002] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1013] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [1024] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1035] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1046]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [1057] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [1068] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1079] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1090] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
## [1101]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1112] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [1123] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1134] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [1156] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [1167]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [1178] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [1189]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [1200] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [1211]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1222] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1233] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1244] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1255] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1266] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1277] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1288] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [1299] FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [1310]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [1321] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1332] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1343] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [1354]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [1365] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE
## [1376] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1387] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1398] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1409] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1420] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1431] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1442] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
## [1453] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1464] FALSE
# merge the AOU codes into the ohio data

Neonics data by route

Based on Tyson’s GIS analysis.

neonics_buffers <- read.csv("../Pesticides/pest_buff_overtime.csv")
head(neonics_buffers)
##   YEAR BBS_route buffer   COMPOUND high_kg_buff low_kg_buff ag_pix_buff
## 1 1992      2353   1000   ATRAZINE       859.34      847.89       52707
## 2 1992      2353   1000 GLYPHOSATE       108.95       77.76       52707
## 3 1992      2353  10000   ATRAZINE      8348.23     8223.01      502193
## 4 1992      2353  10000 GLYPHOSATE      1075.86      795.61      502193
## 5 1992      2353    200   ATRAZINE       181.23      178.84       11132
## 6 1992      2353    200 GLYPHOSATE        22.95       16.33       11132
##   RTENO
## 1 66083
## 2 66083
## 3 66083
## 4 66083
## 5 66083
## 6 66083
unique(neonics_buffers$YEAR)
##  [1] 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
## [15] 2006 2007 2008 2009 2010 2011

Landuse data by route

Based on Tyson’s GIS analysis. Notes for the csv: reclass is Anderson Level I land cover: (0=nodata, 1=water, 2=developed, 3=barren, 4=forest, 5=grassland/shrub, 6=agriculture, 7=wetlands). total is the number of pixels (multiply by 0.009 to get square km).

landuse_buffers <- read.csv("../Pesticides/LC_buffers_overtime.csv")
head(landuse_buffers)
##   BBS_route reclass buffer YEAR total_pix     km2 RTENO
## 1      2310       1   1000 1992         7  0.0063  2310
## 2      2310       2   1000 1992      7447  6.7023  2310
## 3      2310       3   1000 1992       106  0.0954  2310
## 4      2310       6   1000 1992     70656 63.5904  2310
## 5      2310       7   1000 1992      1155  1.0395  2310
## 6      2310       1  10000 1992      2435  2.1915  2310
reclass_table <- data.frame("reclass" = 0:7, "land_cover" = c("nodata", "water", "developed", "barren", "forest", "grassland_shrub", "agriculture", "wetlands"))

landuse_buffers <- merge(landuse_buffers, reclass_table)
class(landuse_buffers$land_cover)
## [1] "factor"

Some exploration!

head(landuse_buffers)
##   reclass BBS_route buffer YEAR total_pix    km2 RTENO land_cover
## 1       1      2310   1000 1992       7.0 0.0063  2310      water
## 2       1      2338    400 1996     229.8 0.2068 66049      water
## 3       1      2322   1000 1993     205.1 0.1846 66022      water
## 4       1      2359   2000 1992    1826.0 1.6434 66113      water
## 5       1      2371    400 1994     210.9 0.1898 66188      water
## 6       1      2310  10000 1992    2435.0 2.1915  2310      water
ggplot(landuse_buffers[landuse_buffers$land_cover %in% c("forest", "agriculture", "developed", "grassland_shrub") & landuse_buffers$buffer == 400, ], aes(x = YEAR, y = total_pix)) +
  geom_smooth(aes(colour = land_cover)) +
#  geom_density2d(aes(colour = land_cover)) +
  geom_point(aes(colour = land_cover), alpha = 0.3, position = position_jitter(width = 0.3))+
  theme_bw()+
  scale_colour_colorblind("Land Cover", labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub"))+
  guides(colour=guide_legend(override.aes=list(fill=NA)))+
  theme(legend.position = "bottom", legend.key = element_blank(), legend.background = element_rect(colour = "grey"))
## geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method.

plot of chunk unnamed-chunk-7

ggplot(landuse_buffers[landuse_buffers$land_cover %in% c("forest", "agriculture", "developed", "grassland_shrub") & landuse_buffers$buffer == 400, ], aes(x = YEAR, y = total_pix)) +
  geom_smooth(aes(colour = land_cover)) +
  geom_density2d(aes(colour = land_cover)) +
  #geom_point(aes(colour = land_cover), alpha = 0.3, position = position_jitter(width = 0.3))+
  theme_bw()+
  scale_colour_colorblind("Land Cover", labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub"))+
  guides(colour = FALSE) +
  facet_wrap(~ land_cover, scales = "free")
## geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method.
## geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method.
## geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method.
## geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method.

plot of chunk unnamed-chunk-7

ggplot(landuse_buffers[landuse_buffers$land_cover %in% c("forest", "agriculture", "developed", "grassland_shrub") & landuse_buffers$buffer == 400 & landuse_buffers$YEAR %in% c(1995, 2000, 2005, 2010), ], aes(x = land_cover, y = total_pix)) +
 geom_violin(aes(fill = land_cover))+
  theme_bw()+
  scale_fill_colorblind("Land Cover", labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
  facet_wrap(~YEAR)

plot of chunk unnamed-chunk-7

ggplot(landuse_buffers[landuse_buffers$land_cover %in% c("forest", "agriculture", "developed", "grassland_shrub") & landuse_buffers$buffer == 400 & landuse_buffers$YEAR %in% c(1995, 2000, 2005, 2010), ], aes(x = factor(YEAR), y = total_pix)) +
 geom_violin(aes(fill = land_cover))+
  theme_bw()+
  scale_fill_colorblind("Land Cover", labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
  guides(fill = FALSE)+
  facet_wrap(~land_cover, scales = "free")

plot of chunk unnamed-chunk-7

summary_landuse <- landuse_buffers[landuse_buffers$land_cover %in% c("forest", "agriculture", "developed", "grassland_shrub"), ] %>% group_by(YEAR, land_cover, buffer) %>% filter(buffer == 400) %>% summarise(total_pix = sum(total_pix))

ggplot(summary_landuse, aes(x = YEAR, y = total_pix)) +
  geom_area(aes(fill = land_cover, colour = land_cover), position = "fill")+
  theme_bw()+
  scale_fill_manual("Land Cover", values = c("sienna4", "gray20", "forestgreen", "orange"), labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
  scale_colour_manual("Land Cover", values = c("sienna4", "gray20", "forestgreen", "orange"), labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
  theme(legend.position = "bottom", legend.background = element_rect(colour = "grey"))

plot of chunk unnamed-chunk-7

unique(landuse_buffers$buffer)
## [1]  1000   400  2000 10000  5000   200
summary_landuse3 <- landuse_buffers[landuse_buffers$land_cover %in% c("forest", "agriculture", "developed", "grassland_shrub"), ] %>% group_by(YEAR, land_cover, buffer) %>% summarise(total_pix = sum(total_pix))

ggplot(summary_landuse3, aes(x = YEAR, y = total_pix)) +
  geom_area(aes(fill = land_cover, colour = land_cover), position = "fill")+
  theme_bw()+
  scale_fill_manual("Land Cover", values = c("sienna4", "gray20", "forestgreen", "orange"), labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
  scale_colour_manual("Land Cover", values = c("sienna4", "gray20", "forestgreen", "orange"), labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
  theme(legend.position = "bottom", legend.background = element_rect(colour = "grey")) +
  facet_wrap(~buffer)

plot of chunk unnamed-chunk-7

# summary_landuse2 <- landuse_buffers%>% group_by(YEAR, land_cover, buffer) %>% filter(buffer == 400) %>% summarise(total_pix = sum(total_pix))
# 
# ggplot(summary_landuse2, aes(x = YEAR, y = total_pix)) +
#   geom_area(aes(fill = land_cover, colour = land_cover), position = "fill")+
#   theme_bw()+
#   #scale_fill_manual("Land Cover", values = c("sienna4", "gray20", "forestgreen", "orange"), labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
#   #scale_colour_manual("Land Cover", values = c("sienna4", "gray20", "forestgreen", "orange"), labels = c("Agriculture", "Developed", "Forest", "Grass/Shrub")) +
#   theme(legend.position = "bottom", legend.background = element_rect(colour = "grey"))

Exploring the neonics

head(neonics_buffers)
##   YEAR BBS_route buffer   COMPOUND high_kg_buff low_kg_buff ag_pix_buff
## 1 1992      2353   1000   ATRAZINE       859.34      847.89       52707
## 2 1992      2353   1000 GLYPHOSATE       108.95       77.76       52707
## 3 1992      2353  10000   ATRAZINE      8348.23     8223.01      502193
## 4 1992      2353  10000 GLYPHOSATE      1075.86      795.61      502193
## 5 1992      2353    200   ATRAZINE       181.23      178.84       11132
## 6 1992      2353    200 GLYPHOSATE        22.95       16.33       11132
##   RTENO
## 1 66083
## 2 66083
## 3 66083
## 4 66083
## 5 66083
## 6 66083
head(neonics_buffers[is.na(neonics_buffers$high_kg_buff) | is.na(neonics_buffers$ag_pix_buff) | is.na(neonics_buffers$low_kg_buff), ])
##     YEAR BBS_route buffer     COMPOUND high_kg_buff low_kg_buff
## 141 1995      2378  10000 IMIDACLOPRID       0.4244          NA
## 144 1995      2378   5000 IMIDACLOPRID       0.1192          NA
## 195 1997      2353   1000 IMIDACLOPRID       1.7907          NA
## 198 1997      2353  10000 IMIDACLOPRID      16.5500          NA
## 201 1997      2353    200 IMIDACLOPRID       0.3804          NA
## 204 1997      2353   2000 IMIDACLOPRID       3.2648          NA
##     ag_pix_buff RTENO
## 141      205449 66906
## 144       70705 66906
## 195       52402 66083
## 198      499972 66083
## 201       11106 66083
## 204       95762 66083
head(neonics_buffers[is.na(neonics_buffers$high_kg_buff) | is.na(neonics_buffers$ag_pix_buff) , ])
##      YEAR BBS_route buffer   COMPOUND high_kg_buff low_kg_buff ag_pix_buff
## 2135 1992      2316    200   ATRAZINE           NA          NA          NA
## 2136 1992      2316    200 GLYPHOSATE           NA          NA          NA
## 2149 1992      2379    200   ATRAZINE           NA          NA          NA
## 2150 1992      2379    200 GLYPHOSATE           NA          NA          NA
## 2167 1993      2316    200   ATRAZINE           NA          NA          NA
## 2168 1993      2316    200 GLYPHOSATE           NA          NA          NA
##      RTENO
## 2135 66008
## 2136 66008
## 2149 66907
## 2150 66907
## 2167 66008
## 2168 66008
dim(neonics_buffers[is.na(neonics_buffers$high_kg_buff) | is.na(neonics_buffers$ag_pix_buff) | is.na(neonics_buffers$low_kg_buff), ])
## [1] 11997     8
dim(neonics_buffers[is.na(neonics_buffers$high_kg_buff) | is.na(neonics_buffers$ag_pix_buff), ])
## [1] 1501    8
unique(neonics_buffers$YEAR)
##  [1] 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
## [15] 2006 2007 2008 2009 2010 2011
class(neonics_buffers$high_kg_buff)
## [1] "numeric"
noyear_neonics_buffers <- neonics_buffers %>% 
  group_by(BBS_route, buffer) %>% 
  summarise(high_pest = sum(high_kg_buff), agpix = sum(ag_pix_buff))
head(noyear_neonics_buffers)
## Source: local data frame [6 x 4]
## Groups: BBS_route
## 
##   BBS_route buffer high_pest agpix
## 1      2310    200        NA    NA
## 2      2310    400        NA    NA
## 3      2310   1000        NA    NA
## 4      2310   2000        NA    NA
## 5      2310   5000        NA    NA
## 6      2310  10000        NA    NA
# spps <- spps[!is.na(spps$NMDS1) & !is.na(spps$NMDS2),]
noyear_neonics_buffers <- noyear_neonics_buffers[!is.na(noyear_neonics_buffers$high_pest) & !is.na(noyear_neonics_buffers$agpix), ]

ggplot(noyear_neonics_buffers, aes(y = as.numeric(high_pest/agpix), x = as.numeric(buffer))) +
  geom_line(aes(group = BBS_route)) +
  geom_smooth()+
  theme_bw()
## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.

plot of chunk unnamed-chunk-8

ggplot(noyear_neonics_buffers, aes(y = high_pest, x = buffer)) +
  geom_line(aes(group = BBS_route)) +
  geom_smooth()+
  theme_bw()
## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.

plot of chunk unnamed-chunk-8

ggplot(noyear_neonics_buffers, aes(y = agpix, x = buffer)) +
  geom_line(aes(group = BBS_route)) +
  geom_smooth()+
  theme_bw()
## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.

plot of chunk unnamed-chunk-8

# now to see if intensity has increased over tine
names(neonics_buffers)
## [1] "YEAR"         "BBS_route"    "buffer"       "COMPOUND"    
## [5] "high_kg_buff" "low_kg_buff"  "ag_pix_buff"  "RTENO"
year_neonics_buffers <- neonics_buffers %>%
  group_by(BBS_route, YEAR, COMPOUND, buffer) %>%
  summarise(intensity = high_kg_buff/ag_pix_buff) 

names(year_neonics_buffers)
## [1] "BBS_route" "YEAR"      "COMPOUND"  "buffer"    "intensity"
ggplot(year_neonics_buffers, aes(y = intensity, x = YEAR)) +
  geom_line(aes(group = BBS_route)) +
  facet_grid(buffer~ COMPOUND, scale = "free") +
  theme_bw()
## Warning: Removed 171 rows containing missing values (geom_path).
## Warning: Removed 57 rows containing missing values (geom_path).
## Warning: Removed 171 rows containing missing values (geom_path).
## Warning: Removed 105 rows containing missing values (geom_path).
## Warning: Removed 117 rows containing missing values (geom_path).
## Warning: Removed 39 rows containing missing values (geom_path).
## Warning: Removed 117 rows containing missing values (geom_path).
## Warning: Removed 72 rows containing missing values (geom_path).
## Warning: Removed 54 rows containing missing values (geom_path).
## Warning: Removed 15 rows containing missing values (geom_path).
## Warning: Removed 54 rows containing missing values (geom_path).
## Warning: Removed 33 rows containing missing values (geom_path).
## Warning: Removed 45 rows containing missing values (geom_path).
## Warning: Removed 15 rows containing missing values (geom_path).
## Warning: Removed 45 rows containing missing values (geom_path).
## Warning: Removed 27 rows containing missing values (geom_path).
## Warning: Removed 81 rows containing missing values (geom_path).
## Warning: Removed 27 rows containing missing values (geom_path).
## Warning: Removed 81 rows containing missing values (geom_path).
## Warning: Removed 51 rows containing missing values (geom_path).
## Warning: Removed 36 rows containing missing values (geom_path).
## Warning: Removed 12 rows containing missing values (geom_path).
## Warning: Removed 36 rows containing missing values (geom_path).
## Warning: Removed 24 rows containing missing values (geom_path).

plot of chunk unnamed-chunk-8

year_neonics_buffers2 <- neonics_buffers %>%
  group_by(BBS_route, YEAR, COMPOUND) %>%
  summarise(intensity = mean(high_kg_buff/ag_pix_buff)) 

ggplot(year_neonics_buffers2, aes(y = intensity, x = YEAR)) + 
  geom_line(aes(group = BBS_route)) +
  facet_wrap(~ COMPOUND, scale = "free") +
  theme_bw()
## Warning: Removed 279 rows containing missing values (geom_path).
## Warning: Removed 90 rows containing missing values (geom_path).
## Warning: Removed 279 rows containing missing values (geom_path).
## Warning: Removed 183 rows containing missing values (geom_path).

plot of chunk unnamed-chunk-8

ggplot(year_neonics_buffers2, aes(y = intensity, x = YEAR)) + 
  geom_line(aes(group = BBS_route)) +
  facet_wrap(~ COMPOUND) +
  theme_bw()
## Warning: Removed 279 rows containing missing values (geom_path).
## Warning: Removed 90 rows containing missing values (geom_path).
## Warning: Removed 279 rows containing missing values (geom_path).
## Warning: Removed 183 rows containing missing values (geom_path).

plot of chunk unnamed-chunk-8